﻿Public Class FrmDetailCommande

#Region "champs"
    Dim position As Integer = 0
#End Region

#Region "gestionnaire d'événements"
    Private Sub FrmDetailCommande_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.MdiParent = FrmStart
        'On grise les données
        txtNumCommande.Enabled = False
        txtDateCommande.Enabled = False
        ComboBoxClientComm.Enabled = False

        'Affichage de catégories dans la combo box
        MySQLConnect.MaRequete = "SELECT * FROM Categorie"
        MySQLConnect.MaCommandeSpecialeRequete.CommandText = MySQLConnect.MaRequete
        MySQLConnect.MonRemplisseur.SelectCommand = MySQLConnect.MaCommandeSpecialeRequete
        MySQLConnect.MonRemplisseur.Fill(MySQLConnect.MonJeuDeDonnees, "ToutesLesCategories")
        ComboBoxCategorie.DataSource = MySQLConnect.MonJeuDeDonnees.Tables("ToutesLesCategories")

        ComboBoxCategorie.DisplayMember = "LibelleCategorie"
        ComboBoxCategorie.ValueMember = "idCategorie"

        'Affichage de produits dans la combo box
        MySQLConnect.MaRequete = "SELECT * FROM Produit"
        MySQLConnect.MaCommandeSpecialeRequete.CommandText = MySQLConnect.MaRequete
        MySQLConnect.MonRemplisseur.SelectCommand = MySQLConnect.MaCommandeSpecialeRequete
        MySQLConnect.MonRemplisseur.Fill(MySQLConnect.MonJeuDeDonnees, "TousLesProduits")
        ComboBoxProduits.DataSource = MySQLConnect.MonJeuDeDonnees.Tables("TousLesProduits")

        ComboBoxProduits.DisplayMember = "LibelleProduit"
        ComboBoxProduits.ValueMember = "idProduit"



        Dim n As Integer
        n = CInt(txtNumCommande.Text)
        'Affichage du datagrid avec les produits commandés
        MySQLConnect.MaRequete = "SELECT LigneDeCommande.idCommande, LigneDeCommande.idProduit, LibelleProduit, QuantiteCom, idClient, NomClient, PrenomClient FROM LigneDeCommande, Client, Produit, Commande WHERE Produit.idProduit = LigneDeCommande.idProduit AND Commande.idCommande = LigneDeCommande.idCommande AND Client.idClient = Commande.idCli AND LigneDeCommande.idCommande = " & n & "  ORDER BY LigneDeCommande.idCommande ASC "
        MySQLConnect.MaCommandeSpecialeRequete.CommandText = MySQLConnect.MaRequete
        MySQLConnect.MonRemplisseur.SelectCommand = MySQLConnect.MaCommandeSpecialeRequete
        MySQLConnect.MonRemplisseur.Fill(MySQLConnect.MonJeuDeDonnees, "TousLesDetailsCommande")
        DGRecapProdComm.DataSource = MySQLConnect.MonJeuDeDonnees.Tables("TousLesDetailsCommande")

        RechargerLesDonnees()
    End Sub

    Private Sub btnAjouterComm_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAjouterComm.Click
        'Gestion de l'ajout d'une commande
        Dim n As Integer
        Dim q As Integer

        If btnAjouterComm.Text = "Ajouter à la Commande" Then
            btnAjouterComm.Text = "Valider !"
        Else
            If txtNumCommande.Text <> "" And txtQuantiteCommande.Text <> "" Then
                'Affectation variables             
                n = CInt(txtNumCommande.Text)
                q = CInt(txtQuantiteCommande.Text)

                'Requête
                MySQLConnect.MaRequete = "INSERT INTO LigneDeCommande VALUES (" & n & ", " & ComboBoxProduits.SelectedValue & ", " & q & ")"
                MySQLConnect.MaCommandeSpecialeRequete.CommandText = MySQLConnect.MaRequete
                MySQLConnect.MaCommandeSpecialeRequete.ExecuteNonQuery()

                MessageBox.Show("Le produit a été ajouté à la commande", "Ajout d'une commande", MessageBoxButtons.OK)
                position = 0

                'RechargerLesDonnees()
                'Rafraichir()


                btnAjouterComm.Text = "Ajouter à la Commande"
                RechargerLesDonnees()
            Else
                MessageBox.Show("Veuillez renseignez tous les champs munis d'un '*'", "Erreur !", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            End If
        End If
    End Sub

#Region "Méthodes et procédures"

    'Public Sub Rafraichir()
    '    txtNumCommande.Text = MySQLConnect.MonJeuDeDonnees.Tables("TousLesDetailsCommande").Rows(position).Item(0)
    '    txtDateCommande.Text = MySQLConnect.MonJeuDeDonnees.Tables("TousLesDetailsCommande").Rows(position).Item(1)
    '    ComboBoxClientComm.SelectedValue = MySQLConnect.MonJeuDeDonnees.Tables("TousLesDetailsCommande").Rows(position).Item(2)
    'End Sub


    Public Sub RechargerLesDonnees()
        Dim n As Integer = CInt(txtNumCommande.Text)

        MySQLConnect.MaRequete = "SELECT LigneDeCommande.idCommande, LigneDeCommande.idProduit, LibelleProduit, QuantiteCom, idClient, NomClient, PrenomClient FROM LigneDeCommande, Client, Produit, Commande WHERE Produit.idProduit = LigneDeCommande.idProduit AND Commande.idCommande = LigneDeCommande.idCommande AND Client.idClient = Commande.idCli AND LigneDeCommande.idCommande = " & n & " ORDER BY LigneDeCommande.idCommande ASC "
        MySQLConnect.MaCommandeSpecialeRequete.CommandText = MySQLConnect.MaRequete
        MySQLConnect.MonRemplisseur.SelectCommand = MySQLConnect.MaCommandeSpecialeRequete
        MySQLConnect.monremplisseur.Fill(MySQLConnect.monjeudedonnees, "TousLesDetailsCommande")
    End Sub
#End Region

#End Region

    Private Sub ComboBoxProduits_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBoxProduits.SelectedIndexChanged

        'Affichage de produits dans la combo box
        MySQLConnect.MaRequete = "SELECT * FROM Produit"
        MySQLConnect.MaCommandeSpecialeRequete.CommandText = MySQLConnect.MaRequete
        MySQLConnect.MonRemplisseur.SelectCommand = MySQLConnect.MaCommandeSpecialeRequete
        MySQLConnect.MonRemplisseur.Fill(MySQLConnect.MonJeuDeDonnees, "TousLesProduits")
        ComboBoxProduits.DataSource = MySQLConnect.MonJeuDeDonnees.Tables("TousLesProduits")
    End Sub
End Class